473922633ce8ed39c143c632c6ba0dbb50886467,xwiki-platform-core/xwiki-platform-rest/xwiki-platform-rest-server/src/main/java/org/xwiki/rest/internal/DomainObjectFactory.java,DomainObjectFactory,fillPageSummary,#PageSummary#ObjectFactory#URI#Document#boolean#XWiki#Boolean#,265
Before Change
}
}
String syntaxesUri = UriBuilder.fromUri(baseUri).path(SyntaxesResource.class).build().toString();
Link syntaxesLink = objectFactory.createLink();
syntaxesLink.setHref(syntaxesUri);
syntaxesLink.setRel(Relations.SYNTAXES);
After Change
}
/* This method is used to fill the "common part" of a Page and a PageSummary */
private static void fillPageSummary(PageSummary pageSummary, ObjectFactory objectFactory, URI baseUri,
Document doc, boolean useVersion, XWiki xwikiApi, Boolean withPrettyNames) throws XWikiException
{
pageSummary.setWiki(doc.getWiki());
pageSummary.setFullName(doc.getFullName());
pageSummary.setId(doc.getPrefixedFullName());
pageSummary.setSpace(doc.getSpace());
pageSummary.setName(doc.getName());
pageSummary.setTitle(doc.getDisplayTitle());
pageSummary.setXwikiRelativeUrl(doc.getURL("view"));
pageSummary.setXwikiAbsoluteUrl(doc.getExternalURL("view"));
pageSummary.setTranslations(createTranslations(objectFactory, baseUri, doc));
pageSummary.setSyntax(doc.getSyntaxId());
pageSummary.setVersion(doc.getVersion());
pageSummary.setAuthor(doc.getAuthor());
if (withPrettyNames) {
pageSummary.setAuthorName(xwikiApi.getUserName(doc.getAuthor(), false));
}
Document parent = Utils.getParentDocument(doc, xwikiApi);
pageSummary.setParent(doc.getParent());
// parentId must not be set if the parent document does not exist.
if (parent != null && !parent.isNew()) {
pageSummary.setParentId(parent.getPrefixedFullName());
} else {
pageSummary.setParentId("");
}
String spaceUri = uri(baseUri, SpaceResource.class, doc.getWiki(), doc.getSpace());
Link spaceLink = objectFactory.createLink();
spaceLink.setHref(spaceUri);
spaceLink.setRel(Relations.SPACE);
pageSummary.getLinks().add(spaceLink);
if (parent != null) {
String parentUri = uri(baseUri, PageResource.class, parent.getWiki(), parent.getSpace(), parent.getName());
Link parentLink = objectFactory.createLink();
parentLink.setHref(parentUri);
parentLink.setRel(Relations.PARENT);
pageSummary.getLinks().add(parentLink);
}
String historyUri = uri(baseUri, PageHistoryResource.class, doc.getWiki(), doc.getSpace(), doc.getName());
Link historyLink = objectFactory.createLink();
historyLink.setHref(historyUri);
historyLink.setRel(Relations.HISTORY);
pageSummary.getLinks().add(historyLink);
if (!doc.getChildren().isEmpty()) {
String pageChildrenUri =
uri(baseUri, PageChildrenResource.class, doc.getWiki(), doc.getSpace(), doc.getName());
Link pageChildrenLink = objectFactory.createLink();
pageChildrenLink.setHref(pageChildrenUri);
pageChildrenLink.setRel(Relations.CHILDREN);
pageSummary.getLinks().add(pageChildrenLink);
}
if (!doc.getComments().isEmpty()) {
String commentsUri;
if (useVersion) {
commentsUri =
uri(baseUri, CommentsVersionResource.class, doc.getWiki(), doc.getSpace(), doc.getName(),
doc.getVersion());
} else {
commentsUri = uri(baseUri, CommentsResource.class, doc.getWiki(), doc.getSpace(), doc.getName());
}
Link commentsLink = objectFactory.createLink();
commentsLink.setHref(commentsUri);
commentsLink.setRel(Relations.COMMENTS);
pageSummary.getLinks().add(commentsLink);
}
if (!doc.getAttachmentList().isEmpty()) {
String attachmentsUri;
if (useVersion) {
attachmentsUri =
uri(baseUri, AttachmentsAtPageVersionResource.class, doc.getWiki(), doc.getSpace(), doc.getName(),
doc.getVersion());
} else {
attachmentsUri = uri(baseUri, AttachmentsResource.class, doc.getWiki(), doc.getSpace(), doc.getName());
}
Link attachmentsLink = objectFactory.createLink();
attachmentsLink.setHref(attachmentsUri);
attachmentsLink.setRel(Relations.ATTACHMENTS);
pageSummary.getLinks().add(attachmentsLink);
}
if (!doc.getxWikiObjects().keySet().isEmpty()) {
String objectsUri;
if (useVersion) {
objectsUri =
uri(baseUri, ObjectsAtPageVersionResource.class, doc.getWiki(), doc.getSpace(), doc.getName(),
doc.getVersion());
} else {
objectsUri = uri(baseUri, ObjectsResource.class, doc.getWiki(), doc.getSpace(), doc.getName());
}
Link objectsLink = objectFactory.createLink();
objectsLink.setHref(objectsUri);
objectsLink.setRel(Relations.OBJECTS);
pageSummary.getLinks().add(objectsLink);
}
com.xpn.xwiki.api.Object tagsObject = doc.getObject("XWiki.TagClass", 0);
if (tagsObject != null) {
if (tagsObject.getProperty("tags") != null) {
String tagsUri = uri(baseUri, PageTagsResource.class, doc.getWiki(), doc.getSpace(), doc.getName());
Link tagsLink = objectFactory.createLink();
tagsLink.setHref(tagsUri);
tagsLink.setRel(Relations.TAGS);
pageSummary.getLinks().add(tagsLink);
}
}
String syntaxesUri = uri(baseUri, SyntaxesResource.class);
Link syntaxesLink = objectFactory.createLink();
syntaxesLink.setHref(syntaxesUri);
syntaxesLink.setRel(Relations.SYNTAXES);